package com.task.core.service;

import java.util.List;

import com.task.common.domain.info.KeyAndValue;
import com.task.core.domain.EngineSchemeInfo;
import com.task.core.domain.RelationEngineAndSchemeInfo;
import com.task.core.dto.request.EngineSchemeRequestDTO;
import com.task.core.vo.resp.EngineSchemeDetailRespVo;

/**
 * @author 迪迦.
 * @date 2025/1/6 16:47
 */
public interface EngineSchemeService {

  List<EngineSchemeInfo> getEngineSchemeByPage(EngineSchemeRequestDTO request);

  EngineSchemeInfo getEngineSchemeDetail(String code);

  List<KeyAndValue> getEngineSchemeForOption(EngineSchemeRequestDTO request);

  void addEngineScheme(EngineSchemeRequestDTO request);

  void modifyEngineScheme(EngineSchemeRequestDTO request);

  void deleteEngineScheme(String engineSchemeCode, Long userId);

  List<String> getAllCodes();

  List<RelationEngineAndSchemeInfo> getRelation(String code);

  List<String> getAllCodesByEngineCode(String operationCode);

    EngineSchemeInfo getEngineSchemeByCode(String dataCode);

  List<RelationEngineAndSchemeInfo> getEngineAndEngineSchemeRelation(String engineSchemeCode);

  EngineSchemeDetailRespVo getEngineSchemeDetailByCode(String engineSchemeCode);
}
